package crs.perfiles.model;
// default package
// Generated 05-feb-2015 22:08:34 by Hibernate Tools 4.3.1

import java.util.Date;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.springframework.context.MessageSource;

import crs.users.model.Users;

/**
 * CrsPerfilUsuario generated by hbm2java
 */
@Entity
@Table(name = "crs_perfil_usuario", schema = "public")
public class CrsPerfilUsuario implements java.io.Serializable {

	private int userid;
	private CrsPerfilUsuario crsPerfilUsuario;
	private Users users;
	private Date fechanacimiento;
	private char sexo;
	private Short peso;
	private Short altura;
	private Short frecmax;
	private Short frecrep;
	private Set crsSolicitudeses = new HashSet(0);
	private Set crsPerfilUsuarios = new HashSet(0);
	
	public CrsPerfilUsuario() {
	}

	public CrsPerfilUsuario(Users users, char sexo, Short peso, Short altura) {
		this.users = users;
		this.sexo = sexo;
		this.peso = peso;
		this.altura = altura;
	}

	public CrsPerfilUsuario(CrsPerfilUsuario crsPerfilUsuario, Users users,
			Date fechanacimiento, char sexo, Short peso, Short altura,
			Set crsSolicitudeses, Set crsPerfilUsuarios, Set crsPerfilCentros) {
		this.crsPerfilUsuario = crsPerfilUsuario;
		this.users = users;
		this.fechanacimiento = fechanacimiento;
		this.sexo = sexo;
		this.peso = peso;
		this.altura = altura;
		this.crsSolicitudeses = crsSolicitudeses;
		this.crsPerfilUsuarios = crsPerfilUsuarios;
		
	}

	@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "users"))
	@Id
	@GeneratedValue(generator = "generator")
	@Column(name = "userid", unique = true, nullable = false)
	public int getUserid() {
		return this.userid;
	}

	public void setUserid(int userid) {
		this.userid = userid;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "puserid")
	public CrsPerfilUsuario getCrsPerfilUsuario() {
		return this.crsPerfilUsuario;
	}

	public void setCrsPerfilUsuario(CrsPerfilUsuario crsPerfilUsuario) {
		this.crsPerfilUsuario = crsPerfilUsuario;
	}

	@OneToOne(fetch = FetchType.LAZY)
	@PrimaryKeyJoinColumn
	public Users getUsers() {
		return this.users;
	}

	public void setUsers(Users users) {
		this.users = users;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fechanacimiento", length = 13)
	public Date getFechanacimiento() {
		return this.fechanacimiento;
	}

	public void setFechanacimiento(Date fechanacimiento) {
		this.fechanacimiento = fechanacimiento;
	}

	@Column(name = "sexo", nullable = false, length = 1)
	public char getSexo() {
		return this.sexo;
	}
	
	@Column(name = "frecmax", precision = 3, scale = 0)
	public Short getFrecmax() {
		return this.frecmax;
	}

	public void setFrecmax(Short frecmax) {
		this.frecmax = frecmax;
	}

	@Column(name = "frecrep", precision = 3, scale = 0)
	public Short getFrecrep() {
		return this.frecrep;
	}

	public void setFrecrep(Short frecrep) {
		this.frecrep = frecrep;
	}

	public String getSexodesc(MessageSource resource, Locale locale) {
		if (this.sexo=='H'){
			return resource.getMessage("crs.per.sex_h", null,locale);
		}else{
			return resource.getMessage("crs.per.sex_m", null,locale);
		}
	}	
	
	public void setSexo(char sexo) {
		this.sexo = sexo;
	}

	@Column(name = "peso", nullable = false, precision = 3, scale = 0)
	public Short getPeso() {
		return this.peso;
	}

	public void setPeso(Short peso) {
		this.peso = peso;
	}

	@Column(name = "altura", nullable = false, precision = 3, scale = 0)
	public Short getAltura() {
		return this.altura;
	}

	public void setAltura(Short altura) {
		this.altura = altura;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "crsPerfilUsuario")
	public Set getCrsSolicitudeses() {
		return this.crsSolicitudeses;
	}

	public void setCrsSolicitudeses(Set crsSolicitudeses) {
		this.crsSolicitudeses = crsSolicitudeses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "crsPerfilUsuario")
	public Set getCrsPerfilUsuarios() {
		return this.crsPerfilUsuarios;
	}

	public void setCrsPerfilUsuarios(Set crsPerfilUsuarios) {
		this.crsPerfilUsuarios = crsPerfilUsuarios;
	}

	

}
